Maximize data visibility using slated viewer

ABSTRACT

A slanted viewer is provided to maximize data visibility. In the context of computer graphics and a rendering technique, the slanted viewer&#39;s use of three-dimensional rendering provides an instant view of full data without compromising the visibility of other view areas or data and with minimum user interactions. The slanted viewer combines the use of two-dimensional and three-dimensional concepts to enhance, as well as to preserve, a well-established user interaction environment and navigation system. The slanted viewer serves effectively in viewers showing extended length of text or objects horizontally.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a Continuation of U.S. application Ser. No.11/295,913, filed Dec. 7, 2005, now U.S. Pat. No. 7,414,627 which claimspriority to Canadian Patent Application No. 2,489,613, filed Dec. 7,2004, which are incorporated herein by reference in their entirety.

BACKGROUND OF THE INVENTION

1. Technical Field

The present invention relates to maximizing data visibility.Particularly, the present invention provides a slanted viewer that usesdepth as a three-dimensional volume to provide an instant view of fulldata without compromising the visibility of other view areas or data inthe well-established two-dimensional environment and conventionalnavigation to which users are accustomed.

2. Description of Related Art

A file viewer is an application used for displaying file and directorylistings and information. A file viewer may also control searchingfunctions and file type associations (based on filename extensions). Afile viewer may also make use of navigational arrows (back and forward)for moving between recently visited directories. This feature has provento be a useful feature that has been emulated by other file browsingsystems.

In the state of today's information technology, the amount ofinformation available grows exponentially, particularly compared to theamount of space that is available for display or visualization. Currentdisplay devices are often described as rectangular, flat screens. Veryoften lengthy data being displayed would be hidden off the screen orviewing area. Currently, this kind of viewing limitation can beaddressed by use of commonly known scroll bars in either the horizontalaxis or the vertical axis or by resizing the viewing area. Users oftenmanually ‘scroll’ within the viewer to or ‘expand’ the viewer as a meansof revealing the hidden portion of the data.

Although scrolling or expanding a viewer is functionally satisfying, itis lacking the instant preview of full content. Furthermore, theaforementioned way of increasing the visibility of one data is in atrade off of lesser visibility of another set of data. This is due tothe nature of the two-dimensional viewing facility. If one expands aview area resided in a ‘viewer,’ the area that is ‘behind’ it would getcovered up further. The same issue holds true when the user scrolls tothe hidden area; things that were visible would become hidden. Lastly,viewing hidden data requires constant manual or human interactions toperform such operations as scrolling or expanding.

SUMMARY OF THE INVENTION

The present invention provides a method, apparatus and computerinstructions to maximize data visibility to a user through the use of aslanted viewer. The exemplary aspects of the present invention use threedimensions, in the context of computer graphics and a renderingtechnique, to provide an instant view of full data without compromisingthe visibility of other view areas or data and with minimum userinteractions. The slanted viewer combines the use of two-dimensional andthree-dimensional concepts to enhance, as well as to preserve, awell-established user interaction environment and navigation system. Theslanted viewer serves effectively in viewers showing extended length oftext or objects horizontally.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are setforth in the appended claims. The invention itself, however, as well asa preferred mode of use, further objectives and advantages thereof, willbest be understood by reference to the following detailed description ofan illustrative embodiment when read in conjunction with theaccompanying drawings, wherein:

FIG. 1 is a pictorial representation of a network of data processingsystems in which the present invention may be implemented;

FIG. 2 is a block diagram of a data processing system that may beimplemented as a server in accordance with a preferred embodiment of thepresent invention;

FIG. 3 is a block diagram of a data processing system in which thepresent invention may be implemented;

FIG. 4 is a diagram illustrating an exemplary view of a conventionalviewer;

FIG. 5 is a diagram illustrating an exemplary view of the partial fileor folder names that are viewed in the convention viewer;

FIG. 6 is a diagram illustrating an exemplary view of the complete fileor folder names that may be normally hidden in a convention viewer whenthe columns are narrowed;

FIG. 7 is a flow diagram illustrating the rendering the complete text offiles or folder names within a fixed size viewer in accordance with apreferred embodiment of the present invention;

FIG. 8 is a diagram illustrating an exemplary view of file or foldernames in a two-dimensional view using a limited horizontal space viewer;and

FIG. 9 is a diagram illustrating a two-dimensional slanted viewer offiles or folder names in accordance with a preferred embodiment of thepresent invention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention provides a method, apparatus and computerinstructions in a data processing system to maximize data visibility toa user through the use of a slanted viewer. The data processing devicemay be a stand-alone computing device or may be a distributed dataprocessing system in which multiple computing devices are utilized toperform various aspects of the present invention. Therefore, thefollowing FIGS. 1-3 are provided as exemplary diagrams of dataprocessing environments in which the present invention may beimplemented. It should be appreciated that FIGS. 1-3 are only exemplaryand are not intended to assert or imply any limitation with regard tothe environments in which the present invention may be implemented. Manymodifications to the depicted environments may be made without departingfrom the spirit and scope of the present invention.

With reference now to the figures, FIG. 1 depicts a pictorialrepresentation of a network of data processing systems in which thepresent invention may be implemented. Network data processing system 100is a network of computers in which the present invention may beimplemented. Network data processing system 100 contains a network 102,which is the medium used to provide communications links between variousdevices and computers connected together within network data processingsystem 100. Network 102 may include connections, such as wire, wirelesscommunication links, or fiber optic cables.

In the depicted example, server 104 is connected to network 102 alongwith storage unit 106. In addition, clients 108, 110, and 112 areconnected to network 102. These clients 108, 110, and 112 may be, forexample, personal computers or network computers. In the depictedexample, server 104 provides data, such as boot files, operating systemimages, and applications to clients 108-112. Clients 108, 110, and 112are clients to server 104. Network data processing system 100 mayinclude additional servers, clients, and other devices not shown.

In the depicted example, network data processing system 100 is theInternet with network 102 representing a worldwide collection ofnetworks and gateways that use the Transmission ControlProtocol/Internet Protocol (TCP/IP) suite of protocols to communicatewith one another. At the heart of the Internet is a backbone ofhigh-speed data communication lines between major nodes or hostcomputers, consisting of thousands of commercial, government,educational and other computer systems that route data and messages. Ofcourse, network data processing system 100 also may be implemented as anumber of different types of networks, such as for example, an intranet,a local area network (LAN), or a wide area network (WAN). FIG. 1 isintended as an example, and not as an architectural limitation for thepresent invention.

Referring to FIG. 2, a block diagram of a data processing system thatmay be implemented as a server, such as server 104 in FIG. 1, isdepicted in accordance with a preferred embodiment of the presentinvention. Data processing system 200 may be a symmetric multiprocessor(SMP) system including a plurality of processors 202 and 204 connectedto system bus 206. Alternatively, a single processor system may beemployed. Also connected to system bus 206 is memory controller/cache208, which provides an interface to local memory 209. I/O bus bridge 210is connected to system bus 206 and provides an interface to I/O bus 212.Memory controller/cache 208 and I/O bus bridge 210 may be integrated asdepicted.

Peripheral component interconnect (PCI) bus bridge 214 connected to I/Obus 212 provides an interface to PCI local bus 216. A number of modemsmay be connected to PCI local bus 216. Typical PCI bus implementationswill support four PCI expansion slots or add-in connectors.Communications links to clients 108-112 in FIG. 1 may be providedthrough modem 218 and network adapter 220 connected to PCI local bus 216through add-in connectors.

Additional PCI bus bridges 222 and 224 provide interfaces for additionalPCI local buses 226 and 228, from which additional modems or networkadapters may be supported. In this manner, data processing system 200allows connections to multiple network computers. A memory-mappedgraphics adapter 230 and hard disk 232 may also be connected to I/O bus212 as depicted, either directly or indirectly.

Those of ordinary skill in the art will appreciate that the hardwaredepicted in FIG. 2 may vary. For example, other peripheral devices, suchas optical disk drives and the like, also may be used in addition to orin place of the hardware depicted. The depicted example is not meant toimply architectural limitations with respect to the present invention.

The data processing system depicted in FIG. 2 may be, for example, anIBM eServer™ pSeries® system, a product of International BusinessMachines Corporation in Armonk, N.Y., running the Advanced InteractiveExecutive (AIX™) operating system or LINUX operating system.

With reference now to FIG. 3, a block diagram of a data processingsystem is shown in which the present invention may be implemented. Dataprocessing system 300 is an example of a computer, such as client 108 inFIG. 1, in which code or instructions implementing the processes of thepresent invention may be located. In the depicted example, dataprocessing system 300 employs a hub architecture including a northbridge and memory controller hub (MCH) 308 and a south bridge andinput/output (I/O) controller hub (ICH) 310. Processor 302, main memory304, and graphics processor 318 are connected to MCH 308. Graphicsprocessor 318 may be connected to the MCH through an acceleratedgraphics port (AGP), for example.

In the depicted example, local area network (LAN) adapter 312, audioadapter 316, keyboard and mouse adapter 320, modem 322, read only memory(ROM) 324, hard disk drive (HDD) 326, CD-ROM driver 330, universalserial bus (USB) ports and other communications ports 332, and PCI/PCIedevices 334 may be connected to ICH 310. PCI/PCIe devices may include,for example, Ethernet adapters, add-in cards, PC cards for notebookcomputers, etc. PCI uses a cardbus controller, while PCIe does not. ROM324 may be, for example, a flash binary input/output system (BIOS). Harddisk drive 326 and CD-ROM drive 330 may use, for example, an integrateddrive electronics IDE) or serial advanced technology attachment (SATA)interface. A super I/O (SIO) device 336 may be connected to ICH 310.

An operating system runs on processor 302 and is used to coordinate andprovide control of various components within data processing system 300in FIG. 3. The operating system may be a commercially availableoperating system such as Windows XP™, which is available from MicrosoftCorporation. An object oriented programming system, such as the Java™programming system, may run in conjunction with the operating system andprovides calls to the operating system from Java™ programs orapplications executing on data processing system 300. “JAVA” is atrademark of Sun Microsystems, Inc.

Instructions for the operating system, the object-oriented programmingsystem, and applications or programs are located on storage devices,such as hard disk drive 326, and may be loaded into main memory 304 forexecution by processor 302. The processes of the present invention areperformed by processor 302 using computer implemented instructions,which may be located in a memory such as, for example, main memory 304,memory 324, or in one or more peripheral devices 326 and 330.

Those of ordinary skill in the art will appreciate that the hardware inFIG. 3 may vary depending on the implementation. Other internal hardwareor peripheral devices, such as flash memory, equivalent non-volatilememory, or optical disk drives and the like, may be used in addition toor in place of the hardware depicted in FIG. 3. Also, the processes ofthe present invention may be applied to a multiprocessor data processingsystem.

For example, data processing system 300 may be a personal digitalassistant (PDA), which is configured with flash memory to providenon-volatile memory for storing operating system files and/oruser-generated data. The depicted example in FIG. 3 and above-describedexamples are not meant to imply architectural limitations. For example,data processing system 300 also may be a tablet computer, laptopcomputer, or telephone device in addition to taking the form of a PDA.

Although the invention is a general-purpose technique and addresses amuch broader issue, the exemplary aspects of the presently claimedinvention are directed to a file viewer. The particular application ofinterest is the table viewer or list viewer of a file viewer. FIG. 4depicts an exemplary view of a conventional viewer. In this conventionalviewer, the file or folder names are displayed in a multi-column table.Very often the complete text of the name, size, type and modifiedcolumns may not be fully displayed in the viewer, given limited space,and a portion of the displayed text is hidden.

In many cases, partial text is neither meaningful nor immediatelycomprehensible to a user. To adjust the visibility, the user may use theoption of expanding the width of the column. As the user expands thecolumn width, the information to the right is gradually hidden from thescreen. In order to view the information that has been hidden off thescreen, the user would need to scroll within a viewer to or expand theviewer to see the rest of the information.

FIG. 5 depicts an exemplary view of the partial file or folder namesthat are viewed in the convention viewer of FIG. 4. As depicted in thisdiagram, the file or folder names are not readily meaningful to the useras a portion of the text has been hidden due to the column beingnarrowed to allow the other details of the files or folders (e.g. size,type, modified) to be viewed by the user. The partial view shown in FIG.5 limits the view of the entire text of the files or folders names whichare shown in FIG. 6. FIG. 6 depicts an exemplary view of the completefile or folder names that may be normally hidden in a convention viewerwhen the columns are narrowed.

Turning now to FIG. 7, a flow diagram 700 illustrating the operationrendering the complete text of files or folder names within a fixed sizeviewer is depicted in accordance with a preferred embodiment of thepresent invention. The slanted viewing capability may be set as defaultor triggered by user input through a mouse click, a button, or amodified key whichever is appropriate. The process begins with rotationdirection being specified, left-to-right or right-to-left, dependingwhich end provides more details (block 702). Then, it continues withdetermining the horizontal size of the viewer in which thetwo-dimensional file or folder text is displayed (block 704). Once thehorizontal size of the viewer has been determined, a check is made tosee if a default text width has been specified by the user (block 706).If a default text width has been specified, then a rotation angle isdetermined based on the horizontal size of the viewer, the default textwidth and the specified direction of text rotation (block 708). Then thetwo-dimensional text that is displayed in the viewer is rendered using athree-dimensional slanted format that allows the user to see the entiretext of the file or folder names within a limited horizontal spaceviewer (block 710) with the process terminating thereafter.

Returning to block 706, if there is not a default text width specified,a determination is made of the maximum horizontal size of the textwithin the two-dimensional displayed text (block 712). A determinationis then made to see if the maximum horizontal size of the text is toolong, which would cause the three-dimensional slanted rendering of thetext to be distorted and unreadable (block 714). If the maximumhorizontal size of the text is determined to be too long, the width ofthe viewer may be adjusted automatically and a default text width isdetermined that would allow the text to be clearly rendered within alimited horizontal space using the three-dimensional slanted format(block 716). Then a rotation angle is determined based on the horizontalsize of the viewer, the default text width and the specified directionof text rotation (block 708). Then the two-dimensional text that isdisplayed in the viewer is rendered using a three-dimensional slantedformat that allows the user to see the entire text of the file or foldernames within a limited horizontal space viewer (block 710) with theprocess terminating thereafter.

Returning to block 714, if the maximum horizontal size of the text isdetermined not to be too long, then a rotation angle is determined basedon the horizontal size of the viewer, the maximum horizontal size of thetwo-dimensional text and the specified direction of text rotation (block718). Then the two-dimensional text that is displayed in the viewer isrendered using a three-dimensional slanted format that allows the userto see the entire text of the file or folder names within a limitedhorizontal space viewer (block 710) with the process terminatingthereafter.

FIG. 8 depicts an exemplary view of file or folder names in atwo-dimensional view using a limited horizontal space viewer. Inaccordance with an exemplary embodiment of the present invention, FIG. 9depicts the same files or folder names within a limited horizontal spaceviewer of FIG. 8 in a two-dimensional slanted view with rotation fromleft to right after being processed in the manner detailed with respectto FIG. 7.

In summary, the present invention provides a method, apparatus andcomputer instructions to render two-dimensional text in athree-dimensional slanted angle format. The text graphics are rotatedabout the y-axis. As a result, the rotated text requires less amount ofspace along the x-axis (horizontally) but extended along the z-axis (tocreate depth). Thereby, the full text becomes visible while thehorizontal space requirement is retained.

The calculation of the rotation angle is based on the size along thehorizontal axis. In order to retain the width of the view area, thelesser the horizontal space, the more the text is rotated. However, therotation might have distortion effect on the text of the far end. Thedistortion effect is intensified as the rotation angle increases.

Possible solutions to resolve the distortion are rotating the text in adifferent direction or using a default text length. In rotating thedirection of the three-dimensional slanted text, the user could choosewhich direction provides the most details that the user deems valuable.With setting the default text width, the width of each column would beautomatically adjusted so that all information is displayed properly inthe most detailed manner.

It is important to note that while the present invention has beendescribed in the context of a fully functioning data processing system,those of ordinary skill in the art will appreciate that the processes ofthe present invention are capable of being distributed in the form of acomputer readable medium of instructions and a variety of forms and thatthe present invention applies equally regardless of the particular typeof signal bearing media actually used to carry out the distribution.Examples of computer readable media include recordable-type media, suchas a floppy disk, a hard disk drive, a RAM, CD-ROMs, DVD-ROMs. Thecomputer readable media may take the form of coded formats that aredecoded for actual use in a particular data processing system.

The description of the present invention has been presented for purposesof illustration and description, and is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the art. Theembodiment was chosen and described in order to best explain theprinciples of the invention, the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

The embodiments of the invention in which an exclusive property orprivilege is claimed are defined as follows:
 1. A method in a dataprocessing system for rendering text in a limited horizontal space, themethod comprising: receiving text to be displayed in a viewer and also adirection of text slanting; calculating a slanting angle using thedirection of text slanting; slanting the text using the slanting angleto form slanted text; and rendering the slanted text in the viewer in anopposite direction to the received direction of text slanting.
 2. Themethod of claim 1, further comprising: determining a horizontal size ofthe viewer; and identifying a text width, wherein the slanting angle iscalculated using the direction of text slanting, horizontal size of theviewer and the identified text width.
 3. The method of claim 2, whereinthe text width is a default text width.
 4. The method of claim 2,further comprising: determining if the maximum horizontal size of thetext would cause distortion; and in response to the maximum horizontalsize of the text causing distortion, determining a modified text widththat would not cause distortion, wherein the slanting angle iscalculated using the direction of text slanting, the horizontal size ofthe viewer and the modified text width.
 5. The method of claim 4,wherein the slanting angle is calculated using the direction of textslanting, the horizontal size of the viewer and the maximum horizontalsize of the text.
 6. A data processing system comprising: a bus system;a communications system connected to the bus system; a memory connectedto the bus system, wherein the memory includes a set of instructions; aprocessing unit connected to the bus system, wherein the processing unitexecutes the set of instructions to receive text to be displayed in aviewer and also a direction of text slanting; to calculate a slantingangle using the direction of text slanting; to slant the text using theslanting angle to form slanted text; and to render the slanted text inthe viewer in an opposite direction to the received direction of textslanting.
 7. The data processing system of claim 6, further comprising:the processing unit executing a set of instructions to determine ahorizontal size of the viewer; and to identify a text width, wherein theslanting angle is calculated using the direction of text slanting,horizontal size of the viewer and the identified text width.
 8. The dataprocessing system of claim 7, wherein the text width is a default textwidth.
 9. The data processing system of claim 7, further comprising: theprocessing unit executing a set of instructions to determine if themaximum horizontal size of the text would cause distortion; and, inresponse to the maximum horizontal size of the text causing distortion,determining a modified text width that would not cause distortion,wherein the slanting angle is calculated using the direction of textslanting, the horizontal size of the viewer and the modified text width.10. The data processing system of claim 9, wherein the slanting angle iscalculated using the direction of text slanting, the horizontal size ofthe viewer and the maximum horizontal size of the text.
 11. A computerprogram product in a non-transitory computer readable medium forrendering text in a limited horizontal space, the computer programproduct comprising: instructions for receiving text to be displayed in aviewer and also a direction of text slanting; instructions forcalculating a slanting angle using the direction of text slanting;instructions for slanting the text using the slanting angle to formslanted text; and instructions for rendering the slanted text in theviewer in an opposite direction to the received direction of textslanting.
 12. The computer program product of claim 11, furthercomprising: instructions for determining a horizontal size of theviewer; and instructions for identifying a text width, wherein theslanting angle is calculated using the direction of text slanting,horizontal size of the viewer and the identified text width.
 13. Thecomputer program product of claim 12, wherein the text width is adefault text width.
 14. The computer program product of claim 12,further comprising: instructions for determining a maximum horizontalsize of the text; instructions for determining if the maximum horizontalsize of the text would cause distortion; and in response to the maximumhorizontal size of the text causing distortion, instructions fordetermining a modified text width that would not cause distortion,wherein the slanting angle is calculated using the direction of textslanting, the horizontal size of the viewer and the modified text width.15. The computer program product of claim 14, wherein the slanting angleis calculated using the direction of text slanting, the horizontal sizeof the viewer and the maximum horizontal size of the text.
 16. Anapparatus for rendering text in limited horizontal space, the apparatuscomprising: receiving means for receiving text to be displayed in aviewer and also a direction of text slanting; calculating means forcalculating a slanting angle using the direction of text slanting;slanting means for slanting the text using the slanting angle to formslanted; and rendering means for rendering the slanted in the viewer inan opposite direction to the received direction of text slanting.